typedef struct ucontext_s {
  void *sp, *isp, *osp, *dsp, *pc;
  struct ucontext_s *link;
  void *filler;
} ucontext_t;

void getcontext(ucontext_t *context);
void makecontext(ucontext_t *context, void (*entry)(void*), void *arg);
void swapcontext(ucontext_t *current, ucontext_t *new);
void setcontext(ucontext_t *context);
